VCS User Guide学习笔记【使用精简版】 您所在的位置:网站首页 vcs ha VCS User Guide学习笔记【使用精简版】

VCS User Guide学习笔记【使用精简版】

#VCS User Guide学习笔记【使用精简版】| 来源: 网络整理| 查看: 265

VCS_UG学习笔记

除了说明性质的内容,关于命令和仿真,均是默认Verilog语言,暂不考虑SystemVerilog相关的内容。

环境:

运行脚本来验证你的系统配置:syschk.sh

库:

名称上看:库 = 设计库 = 逻辑库

功能上看:VCS里面库的概念不像C语言中的头文件。库是VCS存放中间文件的地方,VCS把全部的中间文件存储在库里面。库指向文件系统的一个真实的物理目录,这个指向关系由synopsys_sim.setup文件指定。

默认情况:WORK是默认的库,它被映射到worklib目录。

WORK > DEFAULT DEFAULT : ./worklib 仿真:

VCS支持两种工作的流程:Two-step Flow和Three-step Flow

类型步骤语言两步编译——仿真Verilig、SystemVerilog三步分析——执行(制作)——仿真Verilog、VHDL、混合HDL

相同点:仿真的前一步得到simv可执行文件,作为仿真阶段的输入。不同点:TODO。

两步方式的基本使用: vcs [compile_options] Verilog_files simv [run_options] 三步方式的基本使用: vlogan [vlogan_options] file1.v file2.v vcs [elaboration_options] design_unit simv [run_options] 编译标志:

适用于命令中为compile_options或者elaboration_options的位置。compile_options与elaboration_options基本是一样的,稍有个别的标志是不同的,没必要严格区分,此处均以编译标志概括。这里给出一些常用的编译标志。

编译标志功能-q静默模式-f filename指明源文件列表的文件-full6464位-l filename指明一个日志文件-timescale=time_unit/time_precision指明仿真时间,优先级高于源代码中的-v library_file指明Verilog模块定义的库文件-y library_directory指明Verilog模块定义的库文件的目录+define+macro宏定义+lint=[no]ID|none|all打印出不良的Verilog代码风格+incdir+directory指明include文件存放的目录Verilog_source_filenameVerilog源文件名-debug_access(+)使用调试模式而非优化模式,常用+all-debug_report记录调试日志debug.report-xzcheck仿真发现条件表达式里面有x或者z的时候打印警告信息-diag sys_task_mem打印mem系统函数的文件信息-R立即执行

备注说明:验证-xzcheck标志的作用

Warning-[XZCHK] Value goes to x/z Signal/expression '(forward_B_sel_i == 4'b1001)' goes to x/z within scope 'tb_top.soc_lite.cpu.ex_u1' in file rtl/myCPU/ex.v:141 at time 15000.

备注说明:验证-diag sys_task_mem标志的作用

Note-[STASK_RMEM] Encountered Memory Read Task /home/juw28/Molly_SRAM_v1.0/rtl/RAM/inst_ram.v, 13 At module inst_ram, Instance tb_top.soc_lite.inst_ram Reading from file /home/juw28/Molly_SRAM_v1.0/inst_ram.dat.

备注说明:验证+lint=[no]ID|none|all标志的作用

Lint-[WMIA-L] Width mismatch in assignment rtl/myCPU/decoder.v, 116 Width mismatch between LHS and RHS is found in assignment: The following 32-bit wide expression is assigned to a 2-bit LHS target: Source info: imm_ex_sel = 0; Expression: imm_ex_sel 关于调试: 基本使用

编译阶段和仿真阶段,均有调试模式(又称交互模式)和优化模式(又称批处理模式)两种。

当使用调试模式的时候,在编译阶段,需要添加编译标志-debug_access(+)。

当使用优化模式的时候,在编译阶段,不需要添加该标志。

当使用调试模式的时候,在仿真阶段,需要添加运行标志-gui打开Verdi GUI进行调试,或者添加运行标志-ucli打开命令行进行调试。

当使用调试模式的时候,在仿真阶段,不需要添加该标志。

波形格式

VCD是IEEE标准的格式,通过Verilog系统任务$dumpvars生成。VPD是Synopsys在VCD基础上的升级的格式,使用Verilog系统任务$vcdpluson生成。VCS提供工具进行两种格式之间的转换。VPD必须基于调试模式的打开,不能够在优化模式下使用。波形的记录默认是全部层次的全部信号,可以指定想要观察的源文件层次的深度、范围、信号等。

$vcdplusfile("filename.vpd"); //默认名是vcdplus.vpd,可通过$vcdplusfile系统任务修改 $vcdpluson(); //打开波形记录 $vcdplusoff(); //停止波形记录 传播未定值:

当遇到未定值X作为分支条件的时候,标准的Verilog行为是走到下一个分支,这样会导致一些潜在的问题,最终在门级仿真的阶段才能够发现,增加了代价消耗。VCS采用了更为高效合理的方法解决未定值X的传播问题。VCS提供了三种编译时、运行时的模式:

模式阶段功能内部逻辑xmerge mode编译比门级悲观遇到x恒为xtmerge mode编译最常用,最接近真实硬件的行为同则同,异则xvmerge mode运行经典Verilog行为走else分支

VCS给出了传播未定值仿真的建议:

一次一部分的使用。(如果在整个设计工程上面都使用传播未定值,可能导致仿真的失败)

面向可综合代码。(tb和不可综合的代码,不应该加入)

VCS命令格式:

默认情况是全设计都进行X传播,默认使用tmerge模式。xprop_config_file是配置文件,指明应用的范围和选项。

vcs -xprop = [tmerge] | [xprop_config_file]

注意,模式和配置文件是二选一的关系,不能同时指定,如以下两个命令选择一个使用。

vcs -xprop=xprop.cfg vcs -xprop=tmerge top.v VCS_UG学习笔记

除了说明性质的内容,关于命令和仿真,均是默认Verilog语言,暂不考虑SystemVerilog相关的内容。

环境:

运行脚本来验证你的系统配置:syschk.sh

库:

名称上看:库 = 设计库 = 逻辑库

功能上看:VCS里面库的概念不像C语言中的头文件。库是VCS存放中间文件的地方,VCS把全部的中间文件存储在库里面。库指向文件系统的一个真实的物理目录,这个指向关系由synopsys_sim.setup文件指定。

默认情况:WORK是默认的库,它被映射到worklib目录。

WORK > DEFAULT DEFAULT : ./worklib 仿真:

VCS支持两种工作的流程:Two-step Flow和Three-step Flow

类型步骤语言两步编译——仿真Verilig、SystemVerilog三步分析——执行(制作)——仿真Verilog、VHDL、混合HDL

相同点:仿真的前一步得到simv可执行文件,作为仿真阶段的输入。不同点:TODO。

两步方式的基本使用: vcs [compile_options] Verilog_files simv [run_options] 三步方式的基本使用: vlogan [vlogan_options] file1.v file2.v vcs [elaboration_options] design_unit simv [run_options] 编译标志:

适用于命令中为compile_options或者elaboration_options的位置。compile_options与elaboration_options基本是一样的,稍有个别的标志是不同的,没必要严格区分,此处均以编译标志概括。这里给出一些常用的编译标志。

编译标志功能-q静默模式-f filename指明源文件列表的文件-full6464位-l filename指明一个日志文件-timescale=time_unit/time_precision指明仿真时间,优先级高于源代码中的-v library_file指明Verilog模块定义的库文件-y library_directory指明Verilog模块定义的库文件的目录+define+macro宏定义+lint=[no]ID|none|all打印出不良的Verilog代码风格+incdir+directory指明include文件存放的目录Verilog_source_filenameVerilog源文件名-debug_access(+)使用调试模式而非优化模式,常用+all-debug_report记录调试日志debug.report-xzcheck仿真发现条件表达式里面有x或者z的时候打印警告信息-diag sys_task_mem打印mem系统函数的文件信息-R立即执行

备注说明:验证-xzcheck标志的作用

Warning-[XZCHK] Value goes to x/z Signal/expression '(forward_B_sel_i == 4'b1001)' goes to x/z within scope 'tb_top.soc_lite.cpu.ex_u1' in file rtl/myCPU/ex.v:141 at time 15000.

备注说明:验证-diag sys_task_mem标志的作用

Note-[STASK_RMEM] Encountered Memory Read Task /home/juw28/Molly_SRAM_v1.0/rtl/RAM/inst_ram.v, 13 At module inst_ram, Instance tb_top.soc_lite.inst_ram Reading from file /home/juw28/Molly_SRAM_v1.0/inst_ram.dat.

备注说明:验证+lint=[no]ID|none|all标志的作用

Lint-[WMIA-L] Width mismatch in assignment rtl/myCPU/decoder.v, 116 Width mismatch between LHS and RHS is found in assignment: The following 32-bit wide expression is assigned to a 2-bit LHS target: Source info: imm_ex_sel = 0; Expression: imm_ex_sel 关于调试: 基本使用

编译阶段和仿真阶段,均有调试模式(又称交互模式)和优化模式(又称批处理模式)两种。

当使用调试模式的时候,在编译阶段,需要添加编译标志-debug_access(+)。

当使用优化模式的时候,在编译阶段,不需要添加该标志。

当使用调试模式的时候,在仿真阶段,需要添加运行标志-gui打开Verdi GUI进行调试,或者添加运行标志-ucli打开命令行进行调试。

当使用调试模式的时候,在仿真阶段,不需要添加该标志。

波形格式

VCD是IEEE标准的格式,通过Verilog系统任务$dumpvars生成。VPD是Synopsys在VCD基础上的升级的格式,使用Verilog系统任务$vcdpluson生成。VCS提供工具进行两种格式之间的转换。VPD必须基于调试模式的打开,不能够在优化模式下使用。波形的记录默认是全部层次的全部信号,可以指定想要观察的源文件层次的深度、范围、信号等。

$vcdplusfile("filename.vpd"); //默认名是vcdplus.vpd,可通过$vcdplusfile系统任务修改 $vcdpluson(); //打开波形记录 $vcdplusoff(); //停止波形记录 传播未定值(未验证):

当遇到未定值X作为分支条件的时候,标准的Verilog行为是走到下一个分支,这样会导致一些潜在的问题,最终在门级仿真的阶段才能够发现,增加了代价消耗。VCS采用了更为高效合理的方法解决未定值X的传播问题。VCS提供了三种编译时、运行时的模式:

模式阶段功能内部逻辑xmerge mode编译比门级悲观遇到x恒为xtmerge mode编译最常用,最接近真实硬件的行为同则同,异则xvmerge mode运行经典Verilog行为走else分支

VCS给出了传播未定值仿真的建议:

一次一部分的使用。(如果在整个设计工程上面都使用传播未定值,可能导致仿真的失败)

面向可综合代码。(tb和不可综合的代码,不应该加入)

VCS命令格式:

默认情况是全设计都进行X传播,默认使用tmerge模式。xprop_config_file是配置文件,指明应用的范围和选项。

vcs -xprop = [tmerge] | [xprop_config_file]

注意,模式和配置文件是二选一的关系,不能同时指定,如以下两个命令选择一个使用。

vcs -xprop=xprop.cfg vcs -xprop=tmerge top.v

备注:使用XProp需要VCS License支持这一部分。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有